package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.RoleBean;

import java.util.List;

/**
 * 角色业务接口
 */
public interface IRoleService {
    /**
     * 动态分页查询角色集合
     *
     * @param pageNO 页码
     * @return 分页对象
     */
    IPage<RoleBean> findByItem(Integer pageNO);

    /**
     * 删除角色
     * 1、通过角色id删除用户角色中间表
     * 2、通过角色id删除权限角色中间表
     * 3、通过角色id删除角色
     *
     * @param id 角色id
     */
    void del(Integer id);


    /**
     * 添加角色，同时添加角色拥有的权限集合
     *
     * @param roleBean   新角色
     * @param permission 权限数组
     */
    String add(RoleBean roleBean, Integer[] permission);

    /**
     * 通过角色id修改用户权限，先删除该用户所有权限，在添加新的权限
     *
     * @param roleId   角色id
     * @param newArray 新的权限数组
     */
    void update(Integer roleId, Integer[] newArray);

    /**
     * 查询所有角色
     *
     * @return
     */
    List<RoleBean> findAll();

    /**
     * 通过角色id 查找角色以及权限
     * @param roleId
     * @return
     */
    RoleBean findById(Integer roleId);
}
